package com.miracle.moa.manager.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.miracle.common.Result;
import com.miracle.moa.manager.entity.Role;

import java.util.List;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author miracle
 * @since 2021-03-22
 */
public interface IRoleService extends IService<Role> {


    /**
     * 根据用户ID查询用户所属角色
     *
     * @param userId
     * @return List<Role>
     */
    List<Role> findAllRoleByUserId(Integer userId);

    /**
     *
     * @param page 当前页码
     * @param pageSize 每页大小
     * @param keyword 角色名称/角色编码
     * @return IPage<Role>
     */
    IPage<Role> rolePage(int page, int pageSize, String keyword);

    /**
     * 保存角色信息
     * @param role 角色信息
     * @return Result<Role>
     */
    Result<Role> saveRole(Role role);

    /**
     * 更新角色信息
     * @param role 角色信息
     * @return Result<Role>
     */
    Result<Role> updateRole(Role role);

    /**
     * 根据角色编码删除角色
     * @param id 角色编码
     * @return
     */
    Result deleteRole(Integer id);
}
